import request from '@/config/axios'

// 属性项
export interface PropertyItem {
  propertyId: number // 属性ID
  propertyName: string // 属性名称
  valueId: number // 值ID
  valueName: string // 值名称
}

// 卡片列表 VO
export interface CardVO {
  id: number // id
  spuId: number // 对应的配送卡商品spuId
  skuId: number // 对应的配送卡商品skuId
  cardNumber: string // 卡号
  cardPassword: string // 卡密
  type: number // 类型
  status: number // 卡状态
  outletType: number // 门店类型
  outletId: number // 门店id
  outletName?: string // 门店名称
  userId: number // 激活用户
  userName?: string // 激活用户名称
  enable: number // 启用状态
  createTime?: string // 创建时间
  properties?: PropertyItem[] // 属性列表
}

// 卡片列表 API
export const CardApi = {
  // 查询卡片列表分页
  getCardPage: async (params: any) => {
    return await request.get({ url: `/dc/card/page`, params })
  },

  // 查询卡片列表详情
  getCard: async (id: number) => {
    return await request.get({ url: `/dc/card/get?id=` + id })
  },

  // 新增卡片列表
  createCard: async (data: CardVO) => {
    return await request.post({ url: `/dc/card/create`, data })
  },

  // 修改卡片列表
  updateCard: async (data: CardVO) => {
    return await request.put({ url: `/dc/card/update`, data })
  },

  // 删除卡片列表
  deleteCard: async (id: number) => {
    return await request.delete({ url: `/dc/card/delete?id=` + id })
  },

  // 批量删除卡片列表
  deleteCardList: async (ids: number[]) => {
    return await request.delete({ url: `/dc/card/delete-batch`, data: ids })
  },

  // 导出卡片列表 Excel
  exportCard: async (params) => {
    return await request.download({ url: `/dc/card/export-excel`, params })
  },

  // 获取配送卡首页统计数据
  getStatistics: async () => {
    return await request.get({ url: `/product/spu/statistics` })
  },

  // 获取区域销售分析数据
  getRegionSalesAnalysis: async () => {
    return await request.get({ url: `/dc/card/region-sales-analysis` })
  },

  // 获取月度销售统计数据（实体卡和配送卡）
  getMonthlySalesStatistics: async (year?: number) => {
    return await request.get({ 
      url: `/dc/card/monthly-sales-statistics`,
      params: { year: year || new Date().getFullYear() }
    })
  },
}
